/**
 * 
 */
package com.gwcloud.leetcode.interview100;

import java.util.HashMap;

/**
 * @ClassName   : Leetcode387 
 * @author      : ganwei 
 * @date        : 2020年5月29日
 * @Description : Leetcode387 字符串中的第一个唯一字符
 */
public class Leetcode0387 {
	/**
	 * -解法1，无辅助，暴力搞
	 */
    public int firstUniqChar(String s) {
    	int i, j;
    	for(i = 0; i < s.length(); i++){
    		for(j = 0; j < s.length(); j++){
    			if(i != j && s.charAt(i) == s.charAt(j)){
    				break;
    			}
    		}
    		if(j == s.length()){
    			return i;
    		}
    	}
    	return -1;
    }
    /**
     * -解法2，用hashmap
     */
    public int firstUniqChar_1(String s) {
    	HashMap<Character, Integer> m = new HashMap<Character, Integer>();
    	for(int i = 0; i < s.length(); i++){
    		m.put(s.charAt(i), m.getOrDefault(s.charAt(i), 0)+1);
    	}
    	
    	for(int i = 0; i < s.length(); i++){
    		int cnt = m.getOrDefault(s.charAt(i), 0);
    		if(cnt == 1){
    			return i;
    		}
    	}
    	return -1;
    }
}
